package at.ac.tuwien.ifs.calendit.services;

import at.ac.tuwien.ifs.calendit.domain.Mitarbeiter;



/**
 * Service that can be accessed by students
 * @author SE Team
 *
 */
public interface IMitarbeiterService {
   
    /**
     * Retrieves one single Mitarbeiter from the DB. Should delegate the request to a DAO service
     * @param id unique database ID of Mitarbeiter
     * @return Mitarbeiter object holding the data of one student or null if no student with the
     *         matching id is found
     */
    public Mitarbeiter getById(long id);

    /**
     * Retrieves one single Mitarbeiter by a given matrikel number. Should delegate the request to a DAO service
     * @param matnr
     * @return Mitarbeiter object if someone existed, otherwise null if no student with the given matnr
     *         exist
     */;

    /**
     * Saves one single Mitarbeiter to the Database. Should delegate the request to a DAO service
     * @param student object holding the data of one student
     * @return Mitarbeiter object with the generated ID, or null if an error occurs
     */
    public Mitarbeiter add(Mitarbeiter student);

    /**
     * Updates an existing student in the database. Should delegate the request to a DAO service
     * @param student object holding the data of one student
     * @return Mitarbeiter object
     */
    public Mitarbeiter update(Mitarbeiter student);

    /**
     * Deletes an existing student from the database. Should delegate the request to a DAO service
     * @param id of the student to be deleted
     * @return true if procedure was successfully, otherwise false
     */
    public boolean delete(int id);
    
    
    
}
